//
//  MKUIPickerViewTreeNode.h
//  MKUI
//	联动滚轮单元格对应的树结点数据模型
//  Created by sushangjin on 15/6/19.
//  Copyright (c) 2015年 sushangjin. All rights reserved.
//

#import "MKTreeNode.h"
#import "MKUIPickerViewTreeCellModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface MKUIPickerViewTreeNode : MKTreeNode
@property(nonatomic,strong,nullable) MKUIPickerViewTreeCellModel *cellModel;//滚轮单元格数据模型
/**
 *  使用title初始化cellModel
 *
 *  @param title 标题
 *
 *  @return 结点
 */
- (id)initWithTitle:(NSString *)title;

/**
 *  初始化单元格数据
 *
 *  @param cellModel 单元格数据模型
 *
 *  @return 结点
 */
- (id)initWithCellModel:(nullable MKUIPickerViewTreeCellModel *)cellModel;

/**
 *  查找title对应的第一个子结点所在的索引位置
 *
 *  @param title 指定的标题
 *
 *  @return 第一个结点位置
 */
- (NSInteger)indexOfChildNodeWithTitle:(NSString *)title;
+ (NSInteger)indexOfNodeWithTitle:(NSString *)title nodes:(nullable NSArray<MKUIPickerViewTreeNode *> *)nodes;
@end

@interface MKUIPickerViewTreeNode(JSON)
/**
 *  从array中构造结点数据并添加到子结点中
 *
 *  @param json 形如:@[@"node1",@"node2",...]
 */
- (void)addChildNodesWithArray:(NSArray *)json;

/**
 *  从dictionary中构造结点数据并添加到子结点中
 *
 *  @param json 形如:@{@"node1":@"node1-1",@"node2":@"node2-1"}
 */
- (void)addChildNodesWithDictionary:(NSDictionary *)json;

/**
 *  从json数据中构造结点数据并添加到子结点中
 *
 *  @param json json数据
 */
- (void)addChildNodesWithJson:(id)json;
@end
NS_ASSUME_NONNULL_END
